package com.oceansoft.mobile.econsole.modules.sys.persistence;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.Page;
import com.oceansoft.mobile.econsole.modules.apps.entity.AppInfo;
import com.oceansoft.mobile.econsole.modules.base.entity.Pager;
import com.oceansoft.mobile.econsole.modules.base.entity.Query;
import com.oceansoft.mobile.econsole.modules.sys.entity.ApiInfo;
import com.oceansoft.mobile.econsole.modules.sys.entity.ApiMonitorLog;
import com.oceansoft.mobile.econsole.modules.sys.entity.ApiMonitorSMS;
import com.oceansoft.mobile.econsole.modules.sys.entity.ParamInfo;
import com.oceansoft.mobile.econsole.modules.sys.entity.Record;

@Repository("apiInfoMapper")
public interface IApiInfoMapper {
	/**
	 * 根据条件分页加载数据
	 * 
	 * @param query
	 *            查询过滤条件
	 * @return List<AppInfo>
	 */
	List<ApiInfo> loadPageByCondition(Query query);

	int insert(ApiInfo apiInfo);

	void delete(int apiId);
	
	void update(ApiInfo apiInfo);

	ApiInfo findApiBaseInfoById(@Param("id") int apiId);

	void updateApiInfo(ApiInfo apiInfo);

	int countParam(int apiId);

	ParamInfo findParamById(int apiId);

	void saveParam(ParamInfo param);

	void deleteParam(int apiId);

	Page<Record> loadRecordPageByCondition(Query query);

	void updateAPIStatus(@Param("apiId") int apiId, @Param("status")int status);
	
	public List<ApiInfo> findAllApiInfo();
	
	public void saveApiMonitorLog(ApiMonitorLog log);
	
	public void saveApiMonitorSMS(ApiMonitorSMS sms);
	
	public int getSMSByTime(ApiInfo apiInfo);

}
